using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("DeckTrayCardBackContent")]
	public class DeckTrayCardBackContent : DeckTrayContent
	{
		[Attribute38("DeckTrayCardBackContent.AnimatedCardBack")]
		public class AnimatedCardBack : MonoClass
		{
			public int CardBackId => method_2<int>("CardBackId");

			public GameObject GameObject => method_3<GameObject>("GameObject");

			public Vector3 OriginalScale => method_2<Vector3>("OriginalScale");

			public Vector3 OriginalPosition => method_2<Vector3>("OriginalPosition");

			public AnimatedCardBack(IntPtr address, string className)
				: base(address, className)
			{
			}

			public AnimatedCardBack(IntPtr address)
				: this(address, "AnimatedCardBack")
			{
			}
		}

		public GameObject m_root => method_3<GameObject>("m_root");

		public Vector3 m_trayHiddenOffset => method_2<Vector3>("m_trayHiddenOffset");

		public GameObject m_cardBackContainer => method_3<GameObject>("m_cardBackContainer");

		public iTween.EaseType m_traySlideSlideInAnimation => method_2<iTween.EaseType>("m_traySlideSlideInAnimation");

		public iTween.EaseType m_traySlideSlideOutAnimation => method_2<iTween.EaseType>("m_traySlideSlideOutAnimation");

		public float m_traySlideAnimationTime => method_2<float>("m_traySlideAnimationTime");

		public string m_socketSound => method_4("m_socketSound");

		public Material m_sepiaCardMaterial => method_3<Material>("m_sepiaCardMaterial");

		public static string ADD_CARD_TO_DECK_SOUND => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "DeckTrayCardBackContent", "ADD_CARD_TO_DECK_SOUND");

		public GameObject m_currentCardBack => method_3<GameObject>("m_currentCardBack");

		public Vector3 m_originalLocalPosition => method_2<Vector3>("m_originalLocalPosition");

		public bool m_animating => method_2<bool>("m_animating");

		public bool m_waitingToLoadCardback => method_2<bool>("m_waitingToLoadCardback");

		public AnimatedCardBack m_animData => method_3<AnimatedCardBack>("m_animData");

		public DeckTrayCardBackContent(IntPtr address, string className)
			: base(address, className)
		{
		}

		public DeckTrayCardBackContent(IntPtr address)
			: this(address, "DeckTrayCardBackContent")
		{
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void AnimateInNewCardBack(CardBackManager.LoadCardBackData cardBackData, GameObject original)
		{
			method_8("AnimateInNewCardBack", cardBackData, original);
		}

		public void AnimateNewCardFinished(AnimatedCardBack cardBack)
		{
			method_8("AnimateNewCardFinished", cardBack);
		}

		public void AnimateNewCardUpdate(float val)
		{
			method_8("AnimateNewCardUpdate", val);
		}

		public bool SetNewCardBack(int cardBackId, GameObject original)
		{
			return method_11<bool>("SetNewCardBack", new object[2] { cardBackId, original });
		}

		public void UpdateCardBack(int cardBackId, bool assigning, GameObject obj)
		{
			method_8("UpdateCardBack", cardBackId, assigning, obj);
		}

		public void SetCardBack(GameObject go, bool overriden, bool assigning)
		{
			method_8("SetCardBack", go, overriden, assigning);
		}

		public new bool PreAnimateContentEntrance()
		{
			return method_11<bool>("PreAnimateContentEntrance", Array.Empty<object>());
		}

		public new bool AnimateContentEntranceStart()
		{
			return method_11<bool>("AnimateContentEntranceStart", Array.Empty<object>());
		}

		public new bool AnimateContentEntranceEnd()
		{
			return method_11<bool>("AnimateContentEntranceEnd", Array.Empty<object>());
		}

		public new bool AnimateContentExitStart()
		{
			return method_11<bool>("AnimateContentExitStart", Array.Empty<object>());
		}

		public new bool AnimateContentExitEnd()
		{
			return method_11<bool>("AnimateContentExitEnd", Array.Empty<object>());
		}

		public void UpdateMissingEffect(Actor cardBackActor, bool overriden)
		{
			method_8("UpdateMissingEffect", cardBackActor, overriden);
		}
	}
}
